// 导入 axios 第三方
import axios from 'axios'
import { showFailToast } from 'vant'

// 创建一个实例
const instance = axios.create({
  baseURL: 'http://121.89.205.189:3000/api'
})

// 准备一个需要添加 token 的接口数组
const list: Array<string> = [
  '/user/info',
  '/cart/add',
  '/cart/list',
  '/cart/remove',
  '/cart/selectone',
  '/cart/selectall'
]

// 书写拦截器
instance.interceptors.request.use(config => {
  // 某些内容添加上 token 信息

  // 判断哪些内容添加上 token
  if (list.includes(config.url || '')) {
    config.headers.token = window.localStorage.getItem('token')
  }

  return config
})

// 将来很多地方都有可能需要用到 token
// 那么就有很多地方会出现 token 实现的响应
// 在响应拦截器内统一进行设置
instance.interceptors.response.use(res => {
  // 判断响应体的 code 是 10019 表示 token 失效
  if (res.data.code === '10019') {
    // 提示错误
    showFailToast('登录状态过期, 请重新登录')
    return {}
  }


  return res.data
})

// 导出实例
export default instance
